home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / dev / src / chunkyiclass.lha / test.c < prev   
Encoding:
C/C++ Source or Header  |  1995-04-11  |  3.7 KB  |  149 lines

  1. #include <stdio.h>
  2. #include <clib/alib_protos.h>
  3. #include <clib/dos_protos.h>
  4. #include <exec/types.h>
  5. #include <intuition/imageclass.h>
  6. #include <intuition/gadgetclass.h>
  7. #include <intuition/intuition.h>
  8. #include <clib/exec_protos.h>
  9. #include <clib/intuition_protos.h>
  10. #include "chunkyiclass.h"
  11.  
  12.  
  13. BOOL initialize (void);
  14. void finalize (void);
  15. void event_loop (void);
  16.  
  17.  
  18. struct Library  *IntuitionBase;
  19.  
  20. struct Window    *win;
  21. struct DrawInfo  *dri;
  22. Class            *cl;
  23. struct Image     *img;
  24.  
  25.  
  26. UBYTE   calm_data[] = {
  27.    0,16, 0,14,
  28.    0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,
  29.    0,0,0,1,1,2,2,2,2,2,2,1,1,0,0,0,
  30.    0,0,1,2,2,2,2,2,2,2,2,2,2,1,0,0,
  31.    0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0,
  32.    0,1,2,2,2,1,1,2,2,1,1,2,2,2,1,0,
  33.    1,2,2,2,2,1,1,2,2,1,1,2,2,2,2,1,
  34.    1,2,2,2,2,1,1,2,2,1,1,2,2,2,2,1,
  35.    1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,
  36.    1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,
  37.    0,1,2,2,2,1,2,2,2,2,1,2,2,2,1,0,
  38.    0,1,2,2,2,2,1,1,1,1,2,2,2,2,1,0,
  39.    0,0,1,2,2,2,2,2,2,2,2,2,2,1,0,0,
  40.    0,0,0,1,1,2,2,2,2,2,2,1,1,0,0,0,
  41.    0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0
  42. };
  43.  
  44. UBYTE   scared_data[] = {
  45.    0,16, 0,14,
  46.    0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,
  47.    0,0,0,1,1,2,2,2,2,2,2,1,1,0,0,0,
  48.    0,0,1,2,2,2,2,2,2,2,2,2,2,1,0,0,
  49.    0,1,2,2,2,1,1,2,2,1,1,2,2,2,1,0,
  50.    0,1,2,2,1,2,2,2,2,2,2,1,2,2,1,0,
  51.    1,2,2,2,2,1,1,2,2,1,1,2,2,2,2,1,
  52.    1,2,2,2,2,1,1,2,2,1,1,2,2,2,2,1,
  53.    1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,
  54.    1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,
  55.    0,1,2,2,2,2,1,1,1,1,2,2,2,2,1,0,
  56.    0,1,2,2,2,1,1,1,1,1,1,2,2,2,1,0,
  57.    0,0,1,2,2,2,2,2,2,2,2,2,2,1,0,0,
  58.    0,0,0,1,1,2,2,2,2,2,2,1,1,0,0,0,
  59.    0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0
  60. };
  61.  
  62. ULONG   img_palette[] = {
  63.    2,
  64.    0x00000000, 0x00000000, 0x00000000,
  65.    0xEEEEEEEE, 0xDDDDDDDD, 0x00000000
  66. };
  67.  
  68.  
  69. void
  70. main (void)
  71. {
  72.    if (initialize ())
  73.       event_loop ();
  74.    finalize ();
  75. }
  76.  
  77. void
  78. event_loop (void)
  79. {
  80.    struct IntuiMessage  *msg;
  81.    BOOL   done = FALSE;
  82.    
  83.    while (!done)
  84.    {
  85.       WaitPort (win->UserPort);
  86.       while (msg = (struct IntuiMessage *)GetMsg (win->UserPort))
  87.       {
  88.          if (msg->Class == IDCMP_CLOSEWINDOW)
  89.             done = TRUE;
  90.          ReplyMsg ((struct Message *)msg);
  91.       }
  92.    }
  93. }
  94.  
  95. BOOL
  96. initialize (void)
  97. {
  98.    if (IntuitionBase = OpenLibrary ("intuition.library", 37L))
  99.    {
  100.       win = OpenWindowTags (NULL,
  101.                             WA_Width, 72,
  102.                             WA_Height, 54,
  103.                             WA_Title, "chynkyiclass",
  104.                             WA_Activate, TRUE,
  105.                             WA_DragBar, TRUE,
  106.                             WA_DepthGadget, TRUE,
  107.                             WA_CloseGadget, TRUE,
  108.                             WA_IDCMP, IDCMP_CLOSEWINDOW,
  109.                             TAG_DONE);
  110.       if (win)
  111.       {
  112.          dri = GetScreenDrawInfo (win->WScreen);
  113.          if (cl = init_chunkyiclass ())
  114.          {
  115.             img = (struct Image *)NewObject (cl, NULL,
  116.                                              IA_Data, calm_data,
  117.                                              CHUNKYIA_SelectedData, scared_data,
  118.                                              CHUNKYIA_Palette, img_palette,
  119.                                              CHUNKYIA_Screen, win->WScreen,
  120.                                              TAG_DONE);
  121.             if (img)
  122.             {
  123.                DrawImageState (win->RPort, img, 20, 20, IDS_NORMAL, NULL);
  124.                DrawImageState (win->RPort, img, 36, 20, IDS_SELECTED, NULL);
  125.                
  126.                return TRUE;
  127.             }
  128.          }
  129.       }
  130.    }
  131.    
  132.    return FALSE;
  133. }
  134.  
  135. void
  136. finalize (void)
  137. {
  138.    if (img)
  139.       DisposeObject (img);
  140.    if (cl)
  141.       free_chunkyiclass (cl);
  142.    if (dri)
  143.       FreeScreenDrawInfo (win->WScreen, dri);
  144.    if (win)
  145.       CloseWindow (win);
  146.    if (IntuitionBase)
  147.       CloseLibrary (IntuitionBase);
  148. }
  149.